home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 47 / Amiga Format AFCD47 (Issue 131, Xmas 1999).iso / -serious- / -commercial- / newsrog / install / install-newsrog < prev   
Text File  |  1999-10-04  |  12KB  |  377 lines

  1. ;;----------------------------------------------------------------------------
  2. ;;
  3. ;; Install-NewsRog - NewsRog installation script for Installer
  4. ;;
  5. ;; Copyright © 1998 ShadowWorks Software, All Right reserved.
  6. ;;
  7. ;; Use following Icon tooltypes / Command line options:
  8. ;; APPNAME=NewsRog
  9. ;; MINUSER=AVERAGE
  10. ;;----------------------------------------------------------------------------
  11.  
  12. ;;-- declare procedures ------------------------------------------------------
  13.  
  14. (procedure P_Abort abtmsg
  15.    (transcript abtmsg)
  16.    (abort abtmsg))
  17.  
  18. ;;-- initialization ----------------------------------------------------------
  19.  
  20. (set locale 0)
  21. (set src-floppy 0)
  22. (set @default-dest "RAM:")
  23. (set @app-name "NewsRog")
  24.  
  25. (if (exists "C/unzip")
  26.    (set src-floppy 1))
  27.  
  28. ;;------------------------------ english messages ----------------------------
  29.  
  30. (if (not (= @language "english"))
  31.    (P_Abort #halted))
  32.  
  33. (if (= @language "english")
  34.  (
  35.  
  36.    (set #welcome           (cat "Welcome to the " @app-name " installation "
  37.                                 "process."))
  38.    (set #bad-MUI        (cat "You need at least MUI 3.8 to use " @app-name))
  39.    (set #bad-OS            (cat "You need at least OS 3.0 to use " @app-name
  40.                                 "2.0."))
  41.    (set #dir-choice        (cat "Select the directory where the " @app-name
  42.                                 " Directory will be created."))
  43.    
  44.    (set #copy            (cat "Copying " @app-name "..."))
  45.    (set #unzipdocs       (cat "Extracting documentation..."))
  46.    (set #unziplibs       (cat "Extracting libraries..."))
  47.    (set #wbstrt            (cat "Installing " @app-name " in WBStartup"))
  48.    (set #diricon           (cat "Installing directory icon..."))
  49.    (set #doc-copy          (cat "Copying Documentation..."))
  50.    (set #tooltype-prompt   (cat "Setting tooltypes..."))
  51.    (set #update            (cat "Updating "))
  52.    
  53.    (set #browser-prompt    (cat "The HTML documentation is best read with a web "
  54.                                 "browser such as IBrowse which supports "
  55.                                 "tables.  Enter a the command used to send a "
  56.                                 "URL to your web browser.  A %s will be "
  57.                                 "replaced by the URL of the NewsRog "
  58.                                 "documentation.  For example, for IBrowse you "
  59.                                 "might enter\n\n"
  60.                                 "Work:IBrowse/IBrowse URL %s"))
  61.    
  62.    (set #replbr-prompt     (cat "A browser invocation line already exists.  Do "
  63.                                 "you wish to update it?"))
  64.    
  65.    (set #reinst-prompt     (cat "The " @app-name " directory was last "
  66.                                 "installed in %s.  Do you "
  67.                                 "wish to use this location again?"))
  68.  
  69.    (set #shutdown-prompt   (cat "If NewsRog is running, it must be stopped "
  70.                                 "before this installation.  Continue?"))
  71.  
  72.    (set #halted            (cat "Installation halted."))
  73.  
  74.    (set #badarch           (cat "Bad archive.  File paths and empty directories "
  75.                                 "must be preserved when unarchiving NewsRog.lha!"))
  76.  
  77.    (set #disk1             (cat "Please insert the disk labelled NewsRog_1."))
  78.    (set #disk2             (cat "Please insert the disk labelled NewsRog_2."))
  79.    (set #bad-instdir       (cat "NewsRog cannot be installed into the same "
  80.                                 "directory as the install archive was "
  81.                                 "extracted into.  Please chose a different "
  82.                                 "destination for the NewsRog installation."))))
  83.  
  84. ;=============================================================================
  85. ; Installation procedure
  86. ;=============================================================================
  87.  
  88. ; -- check for existance of MUI: ---------------------------------------------
  89.  
  90. (welcome #welcome)
  91.  
  92. (if (< (exists "MUI:") 2)
  93.     (P_Abort #bad-MUI))
  94.  
  95. (if (< (getversion "exec.library" (resident)) 2555904)
  96.     (P_Abort #bad-OS))
  97.  
  98. (if (not (askbool (prompt #shutdown-prompt)
  99.                   (help   @askbool-help)
  100.                   (default 1)))
  101.     (P_Abort #halted))
  102.  
  103.  
  104. ; -- check for proper archive ------------------------------------------------
  105.  
  106. (if (= src-floppy 0)
  107.     (if (or (not (exists "/MUI/S5697_NNews.mcc"))
  108.             (not (exists "/ARexx"))
  109.             (not (exists "/C"))
  110.             (not (exists "/C/FlushLibs"))
  111.             (not (exists "/Catalogs"))
  112.             (not (exists "/Contrib"))
  113.             (not (exists "/Icons"))
  114.             (not (exists "/Images"))
  115.             (not (exists "/Install"))
  116.             (not (exists "/MUI"))
  117.             (not (exists "/Filters"))
  118.             (not (exists "/Objects"))
  119.             (not (exists "/Projects"))
  120.             (not (exists "/Projects/Project.Default.Orig"))
  121.             (not (exists "/Reginfo"))
  122.             (not (exists "/Remove")))
  123.         (P_Abort #badarch)))
  124.  
  125. ; -- select our install dir --------------------------------------------------
  126.  
  127. (set LastDir "")
  128. (set NR-Dir  "")
  129.  
  130. (if (exists "ENV:NewsRog/NR-Dir")
  131.     ((set LastDir (getenv "NewsRog/NR-Dir"))
  132.      (if (not (exists (tackon LastDir "NewsRog/NewsRog")))
  133.          (set LastDir ""))))
  134.  
  135. (complete 10)
  136. (set Reuse 0)
  137. (if LastDir
  138.     (if (askbool (prompt  (#reinst-prompt LastDir))
  139.                  (help    @askbool-help)
  140.                  (default 1))
  141.         ((set Reuse 1)
  142.          (set NR-Dir (tackon LastDir "NewsRog")))))
  143.  
  144. (if (= NR-Dir "")
  145.     (set NR-Dir
  146.          (tackon (askdir (prompt #dir-choice )
  147.                          (help "")
  148.                          (default "SYS:Utilities")
  149.                          (newpath))
  150.                  @app-name)))
  151.  
  152.  
  153. ; -- Check for overlapping install dir ---------------------------------------
  154.  
  155. (if (exists (tackon NR-Dir "Install/Install-NewsRog"))
  156.     (P_Abort #bad-instdir))
  157.  
  158. ; -- copy our files into place -----------------------------------------------
  159.  
  160. (complete 20)
  161.  
  162. (set @default-dest NR-Dir)
  163.  
  164. ;; -- save old program icon, if there is one ---------------------------------
  165.  
  166. (if (exists (tackon NR-Dir "NewsRog.info"))
  167.     (copyfiles (prompt #copy) (help   @copyfiles-help)
  168.                (source (tackon NR-Dir "NewsRog.info"))
  169.                (dest "T:") (newname "NewsRog.info.orig")))
  170.  
  171. (if (exists (tackon (pathonly NR-Dir) "NewsRog.info"))
  172.     (copyfiles (prompt #copy) (help   @copyfiles-help)
  173.                (source (tackon (pathonly NR-Dir) "NewsRog.info"))
  174.                (dest "T:") (newname "NewsRog.info.dir")))
  175.  
  176. ;; -- copy all of our files to the destination directory ---------------------
  177.  
  178. (if (= src-floppy 0)
  179.     ;; -- source is not on floppies ------------------------------------------
  180.     ((copyfiles
  181.       (prompt #copy) (help   @copyfiles-help)
  182.       (infos)
  183.       (source "/") (dest NR-Dir)
  184.       (choices "ARexx" "Catalogs" "Contrib" "Docs" "Remove" "NewsRog" "MUI"
  185.                "RegInfo" "Projects" "Objects" "Filters" "ReadMe.MUI"
  186.                "ReadMe.TXT" "C" "Icons" ".sig"))
  187.  
  188.      (if (exists "/NewsRog.key")
  189.          (copyfiles
  190.           (prompt #copy) (help   @copyfiles-help)
  191.           (infos)
  192.           (source "/") (dest NR-Dir) (optional "nofail")
  193.           (choices "NewsRog.key")))
  194.  
  195.      (copyfiles
  196.       (prompt #copy) (help   @copyfiles-help)
  197.       (infos)
  198.       (source "/") (dest NR-Dir) (optional "nofail")
  199.       (choices "Images"))
  200.  
  201.      (copylib
  202.       (prompt #copy-edit)
  203.       (help @copylib-help)
  204.       (source "/MUI/TextEditor.mcc")
  205.       (dest "MUI:libs/mui"))
  206.  
  207.      (copylib
  208.       (prompt #copy-edit)
  209.       (help @copylib-help)
  210.       (source "/MUI/TextEditor.mcp")
  211.       (dest "MUI:libs/mui")))
  212.  
  213.   ;; -- else, source is on floppies ------------------------------------------
  214.  
  215.   ((askdisk (prompt #disk1) (help @askdisk-help) (dest "NewsRog_1") (assigns))
  216.  
  217.    (copyfiles
  218.     (prompt #copy) (help   @copyfiles-help)
  219.     (infos) (optional "nofail")
  220.     (source "NewsRog_1:") (dest NR-Dir)
  221.     (choices "Images"))
  222.     
  223.    (copyfiles
  224.     (prompt #copy) (help   @copyfiles-help)
  225.     (infos)
  226.     (source "NewsRog_1:C/UnZip") (dest "t:"))
  227.  
  228.    (copyfiles
  229.     (prompt #copy) (help   @copyfiles-help)
  230.     (infos)
  231.     (source "NewsRog_1:") (dest NR-Dir)
  232.     (choices "ARexx" "Catalogs" "Contrib" "Remove" "NewsRog" 
  233.              "RegInfo" "Projects" "Objects" "Filters" "ReadMe.MUI"
  234.              "ReadMe.TXT" "ReadMeZip.TXT" "C" "Icons" ".sig" "NewsRog.key"))
  235.  
  236.    (copyfiles
  237.     (prompt #copy) (help   @copyfiles-help)
  238.     (source "NewsRog_1:") (dest NR-Dir)
  239.     (choices "Docs.info"))
  240.  
  241.    (working #unziplibs)
  242.  
  243.    (run
  244.     (cat "t:unzip -o -qq NewsRog_1:Libs.zip -d " NR-Dir))
  245.  
  246.    (copylib
  247.     (prompt #copy-edit)
  248.     (help @copylib-help)
  249.     (source (tackon NR-Dir "MUI/TextEditor.mcc"))
  250.     (dest "MUI:libs/mui"))
  251.  
  252.    (copylib
  253.     (prompt #copy-edit)
  254.     (help @copylib-help)
  255.     (source (tackon NR-Dir "MUI/TextEditor.mcp"))
  256.     (dest "MUI:libs/mui"))
  257.  
  258.    (complete 50)
  259.  
  260.    (askdisk (prompt #disk2) (help @askdisk-help) (dest "NewsRog_2") (assigns))
  261.  
  262.    (working #unzipdocs)
  263.  
  264.    (run
  265.     (cat "t:unzip -o -qq NewsRog_2:Docs.zip -d " NR-Dir)))
  266. )
  267.  
  268. (makedir (tackon NR-Dir "ServerGroups"))
  269.  
  270. (complete 90)
  271.  
  272. ;; -- restore original program icon, if we had one ---------------------------
  273.  
  274. (if (exists "T:NewsRog.info.orig")
  275.     ((copyfiles (prompt #copy) (help   @copyfiles-help)
  276.                 (source "T:NewsRog.info.orig")
  277.                 (dest NR-Dir) (newname "NewsRog.info"))
  278.      (delete "T:NewsRog.info.orig")))
  279.  
  280. ; -- remove TextEditor in PROGDIR:MUI ----------------------------------------
  281.  
  282. (if (exists (tackon NR-Dir "MUI/TextEditor.mcc"))
  283.     (delete (tackon NR-Dir "MUI/TextEditor.mcc")))
  284.  
  285. (if (exists (tackon NR-Dir "MUI/TextEditor.mcp"))
  286.     (delete (tackon NR-Dir "MUI/TextEditor.mcp")))
  287.  
  288. ;; -- copy or restore directory icon -----------------------------------------
  289.  
  290. (if (= src-floppy 0)
  291.     (set info-src "//")
  292.   (set info-src "NewsRog_2:Distrib"))
  293.  
  294. (if (exists "T:NewsRog.info.dir")
  295.     (copyfiles
  296.      (prompt #copy) (help   @copyfiles-help)
  297.      (source "T:NewsRog.info.dir") (dest (pathonly NR-Dir))
  298.      (newname "NewsRog.info"))
  299.   ((copyfiles
  300.     (prompt #copy) (help   @copyfiles-help)
  301.     (source info-src) (dest (pathonly NR-Dir))
  302.     (choices "NewsRog.info"))
  303.    (tooltype (dest (tackon (pathonly NR-Dir) "NewsRog"))
  304.              (prompt #diricon)
  305.              (noposition))))
  306.  
  307. (complete 95)
  308.  
  309.  
  310. ; -- add or update the browser launcher script -------------------------------
  311.  
  312. (set DocLauncher (tackon NR-Dir "Docs/English/NR-Main"))
  313. (set UpdateLauncher 0)
  314.  
  315. (if (exists DocLauncher)
  316.     (if (askbool (prompt  #replbr-prompt)
  317.                  (help    @askbool-help)
  318.                  (default 1))
  319.         ((delete DocLauncher)
  320.          (set    UpdateLauncher 1)))
  321.   (set UpdateLauncher 1))
  322.  
  323. (if UpdateLauncher
  324.     ((set LaunchCmd (askstring (prompt #browser-prompt)
  325.                                (help    @askstring-help)
  326.                                (default "Work:IBrowse/IBrowse URL %s")))
  327.      (textfile (dest DocLauncher)
  328.                (append (cat ";!c:execute\n"
  329.                             "stack 64000\n"
  330.                             "set wd `cd`\n"
  331.                             (LaunchCmd "file://localhost/${wd}/NR-Main.html")
  332.                             "\n")))))
  333.  
  334.  
  335.  
  336. ; -- Copy Project.Default, if none exists ------------------------------------
  337.  
  338. (if (= src-floppy 0)
  339.     (set proj-src "/Projects/Project.Default.Orig")
  340.   (set proj-src (tackon NR-Dir "Projects/Project.Default.Orig")))
  341.  
  342. (if (not (exists (tackon NR-Dir "Projects/Project.Default")))
  343.     (copyfiles (prompt #copy) (help @copyfiles-help)
  344.                (source proj-src)
  345.                (dest (tackon NR-Dir "Projects"))
  346.                (newname "Project.Default")))
  347.  
  348.  
  349. ; -- create env vars ---------------------------------------------------------
  350.  
  351. (complete 98)
  352.  
  353. (makedir "ENV:NewsRog")
  354. (makedir "ENVARC:NewsRog")
  355.  
  356. (if (exists "ENV:NewsRog/NR-Dir")    (delete "ENV:NewsRog/NR-Dir"))
  357. (if (exists "ENVARC:NewsRog/NR-Dir") (delete "ENVARC:NewsRog/NR-Dir"))
  358.  
  359. (textfile (dest (tackon "ENV:NewsRog"    "NR-Dir"))
  360.           (append (pathonly NR-Dir)))
  361. (textfile (dest (tackon "ENVARC:NewsRog" "NR-Dir"))
  362.           (append (pathonly NR-Dir)))
  363.  
  364.  
  365. (run (tackon NR-Dir "C/FlushLibs"))
  366.  
  367. ;; -- cleanup -----------------------------------------------------------------
  368.  
  369. (if (= src-floppy 1)
  370.     (if (exists "t:unzip") (delete "t:unzip")))
  371.  
  372. (if (exists "T:NewsRog.info.dir")    (delete "t:NewsRog.info.dir"))
  373.  
  374. (complete 100)
  375.  
  376. (exit)
  377.